/**
 *  一句话思路：
    算法描述：
    解决所需数据结构+算法：
**/
#include<iostream>
#include<set>
#include<iterator>
using namespace std;
const int MAX = 1e9 + 10;
set<int> a;

void divide(int n) {
    for(int i=1; i*i<=n; i++) {
        a.insert(i);
        a.insert(n/i);
    }
    
    cout << a.size() + 1 << endl << "0";
    for(auto it=a.begin(); it!=a.end(); it++) {
        cout << " " << *it;
    }
    cout << endl;
    a.clear();
}

int main() {
    // freopen("divide.in", "r", stdin);
    // freopen("divide.out", "w", stdout);

    int T, n;
    cin >> T;
    while(T--) {
        cin >> n;
        divide(n);
    }
    return 0;
}